/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;

import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author MoroComputer
 */
public class Membro_Banca extends Professor {

    public ArrayList<String> recuperarTrabalhosQueAvalio(int idUser) {
        ArrayList<String> dados= new ArrayList<>();
        
        String sql = "select idbanca,cod_orientador from banca where codMembro1=" + idUser + " or "
                + "codMembro2=" + idUser + " or codMembro3=" + idUser + ";";
        try {
            this.conecta = ConectaBD.getInstance();
            super.statement = this.conecta.getConnection().createStatement();
            super.resultSet = super.statement.executeQuery(sql);
            int idBanca = 0, idOrientador = 0;
            while (super.resultSet.next()) {
                idBanca = super.resultSet.getInt(1);
                idOrientador = super.resultSet.getInt(2);

                if (idBanca != 0 && idOrientador != 0) {
                    Defesa defesa = new Defesa(null, null, null, null);
                    int idAluno = defesa.recuperaIdAluno(idBanca);
                    if (idAluno != 0) {
                        Aluno aluno = new Aluno();
                        int idTcc = aluno.recuperaIdTcc(idAluno);
                        if (idTcc != 0) {
                            ArrayList<String> perfil= aluno.acessarPerfil(idAluno);
                            dados.add(perfil.get(0));
                            Tcc tcc= new Tcc();
                            ArrayList<String> detalhesTcc= tcc.getDadosDeTcc(idTcc);
                            dados.add(detalhesTcc.get(0));
                            Professor professor= new Professor();
                            dados.add(professor.recuperaNomeProfessor(idOrientador));
                            ArrayList<String> dadosDefesa= defesa.recuperarDadosDeDefesa(idAluno);
                            if(dadosDefesa==null){
                                dados.clear();
                            }else{//data, hora, local
                                dados.add(dadosDefesa.get(0));
                                dados.add(dadosDefesa.get(1));
                                dados.add(dadosDefesa.get(2));
                            }
                        }
                    }
                }
            }
            super.resultSet.close();
            super.statement.close();
            return dados;
        } catch (SQLException sqlErro) {
            sqlErro.printStackTrace();
        }
        return null;
    }

}
